{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Analyzing with iNNvestigate"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**iNNvestigate** got created to make analyzing neural network's predictions easy! The library should help the user to focus on research and development by providing implemented analysis methods and facilitating rapid development of new methods. In this notebook we will show you how to use **iNNvestigate** and for a better understanding we recommend to read [iNNvestigate neural networks!](https://arxiv.org/abs/1808.04260) first! How to use **iNNvestigate** you can read in this notebook: [Developing with iNNvestigate](introduction_development.ipynb)\n",
    "\n",
    "-----\n",
    "\n",
    "**The intention behind iNNvestigate is to make it easy to use analysis methods, but it is not to explain the underlying concepts and assumptions. Please, read the according publication(s) when using a certain method and when publishing please cite the according paper(s) (as well as the [iNNvestigate paper](https://arxiv.org/abs/1808.04260)). Thank you!** You can find most related publication in [iNNvestigate neural networks!](https://arxiv.org/abs/1808.04260) and in the README file.\n",
    "\n",
    "### Analysis methods\n",
    "\n",
    "The field of analyizing neural network's predictions is about gaining insights how and why a potentially complex network gave as output a certain value or choose a certain class over others. This is often called interpretability or explanation of neural networks. We just call it analyzing a neural network's prediction to be as neutral as possible and to leave any conclusions to the user.\n",
    "\n",
    "Most methods have in common that they analyze the input features w.r.t. a specific neuron's output. Which insights a method reveals about this output can be grouped into (see [Learning how to explain: PatternNet and PatternAttribution](https://arxiv.org/abs/1705.05598)):\n",
    "\n",
    "* **function:** analyzing the operations the network function uses to extract or compute the output. E.g., how would changing an input feature change the output.\n",
    "* **signal:** analyzing the components of the input that cause the output. E.g., which parts of an input image or which directions of an input are used to determine the output.\n",
    "* **attribution:** attributing the \"importance\" of input features for the output. E.g., how much would changing an input feature change the output.\n",
    "\n",
    "----\n",
    "\n",
    "In this notebook we will introduce methods for each of these categories and along show how to use different features of **iNNvestigate**, namely how to:\n",
    "\n",
    "* analyze a prediction.\n",
    "* train an analyzer.\n",
    "* analyze a prediction w.r.t to a specific output neuron.\n",
    "\n",
    "Let's dive right into it!"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "### Training a network\n",
    "\n",
    "To analyze a network, we need a network! As a base for **iNNvestigate** we chose the Keras deep learning library, because it is easy to use and allows to inspect build models.\n",
    "\n",
    "In this first piece of code we import all the necessary modules:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.simplefilter('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "%matplotlib inline  \n",
    "\n",
    "import imp\n",
    "import matplotlib.pyplot as plot\n",
    "import numpy as np\n",
    "import os\n",
    "\n",
    "import keras\n",
    "import keras.backend\n",
    "import keras.layers\n",
    "import keras.models\n",
    "import keras.utils\n",
    "\n",
    "import innvestigate\n",
    "import innvestigate.utils as iutils\n",
    "\n",
    "# Use utility libraries to focus on relevant iNNvestigate routines.\n",
    "mnistutils = imp.load_source(\"utils_mnist\", \"../utils_mnist.py\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "to load the data:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load data\n",
    "# returns x_train, y_train, x_test, y_test as numpy.ndarray\n",
    "data_not_preprocessed = mnistutils.fetch_data()\n",
    "\n",
    "# Create preprocessing functions\n",
    "input_range = [-1, 1]\n",
    "preprocess, revert_preprocessing = mnistutils.create_preprocessing_f(data_not_preprocessed[0], input_range)\n",
    "\n",
    "# Preprocess data\n",
    "data = (\n",
    "    preprocess(data_not_preprocessed[0]), keras.utils.to_categorical(data_not_preprocessed[1], 10),\n",
    "    preprocess(data_not_preprocessed[2]), keras.utils.to_categorical(data_not_preprocessed[3], 10),\n",
    ")\n",
    "\n",
    "if keras.backend.image_data_format == \"channels_first\":\n",
    "    input_shape = (1, 28, 28)\n",
    "else:\n",
    "    input_shape = (28, 28, 1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and to now create and train a CNN model:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/20\n",
      "60000/60000 [==============================] - 19s 313us/step - loss: 0.1519 - acc: 0.9543\n",
      "Epoch 2/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0405 - acc: 0.9876\n",
      "Epoch 3/20\n",
      "60000/60000 [==============================] - 10s 162us/step - loss: 0.0230 - acc: 0.9924\n",
      "Epoch 4/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0148 - acc: 0.9948\n",
      "Epoch 5/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0114 - acc: 0.9960\n",
      "Epoch 6/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0075 - acc: 0.9975\n",
      "Epoch 7/20\n",
      "60000/60000 [==============================] - 10s 163us/step - loss: 0.0058 - acc: 0.9981\n",
      "Epoch 8/20\n",
      "60000/60000 [==============================] - 9s 150us/step - loss: 0.0065 - acc: 0.9979\n",
      "Epoch 9/20\n",
      "60000/60000 [==============================] - 8s 129us/step - loss: 0.0055 - acc: 0.9983\n",
      "Epoch 10/20\n",
      "60000/60000 [==============================] - 9s 144us/step - loss: 0.0049 - acc: 0.9985\n",
      "Epoch 11/20\n",
      "60000/60000 [==============================] - 10s 163us/step - loss: 0.0059 - acc: 0.9979\n",
      "Epoch 12/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0032 - acc: 0.9990\n",
      "Epoch 13/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0031 - acc: 0.9990\n",
      "Epoch 14/20\n",
      "60000/60000 [==============================] - 10s 159us/step - loss: 0.0030 - acc: 0.9991\n",
      "Epoch 15/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0023 - acc: 0.9996\n",
      "Epoch 16/20\n",
      "60000/60000 [==============================] - 10s 159us/step - loss: 0.0032 - acc: 0.9990\n",
      "Epoch 17/20\n",
      "60000/60000 [==============================] - 10s 159us/step - loss: 0.0036 - acc: 0.9991\n",
      "Epoch 18/20\n",
      "60000/60000 [==============================] - 10s 162us/step - loss: 0.0027 - acc: 0.9991\n",
      "Epoch 19/20\n",
      "60000/60000 [==============================] - 10s 159us/step - loss: 0.0019 - acc: 0.9995\n",
      "Epoch 20/20\n",
      "60000/60000 [==============================] - 10s 161us/step - loss: 0.0018 - acc: 0.9995\n",
      "10000/10000 [==============================] - 1s 68us/step\n",
      "Scores on test set: loss=0.04687740347593756 accuracy=0.991\n"
     ]
    }
   ],
   "source": [
    "model = keras.models.Sequential([\n",
    "    keras.layers.Conv2D(32, (3, 3), activation=\"relu\", input_shape=input_shape),\n",
    "    keras.layers.Conv2D(64, (3, 3), activation=\"relu\"),\n",
    "    keras.layers.MaxPooling2D((2, 2)),\n",
    "    keras.layers.Flatten(),\n",
    "    keras.layers.Dense(512, activation=\"relu\"),\n",
    "    keras.layers.Dense(10, activation=\"softmax\"),\n",
    "])\n",
    "\n",
    "model.compile(loss=\"categorical_crossentropy\", optimizer=\"adam\", metrics=[\"accuracy\"])\n",
    "model.fit(data[0], data[1], epochs=20, batch_size=128)\n",
    "\n",
    "scores = model.evaluate(data[2], data[3], batch_size=128)\n",
    "print(\"Scores on test set: loss=%s accuracy=%s\" % tuple(scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Analyzing a predicition\n",
    "\n",
    "Let's first choose an image to analyze:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d9673c9b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Choosing a test image for the tutorial:\n",
    "image = data[2][7:8]\n",
    "\n",
    "plot.imshow(image.squeeze(), cmap='gray', interpolation='nearest')\n",
    "plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In this first part we show how to create and use an analyzer. To do so we use an analyzer from *function* category, namely the gradient. The gradient shows how the linearized network function reacts on changes of a single feature.\n",
    "\n",
    "This is simply done by passing the model without a softmax to the analyzer class:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d780909e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Stripping the softmax activation from the model\n",
    "model_wo_sm = iutils.keras.graph.model_wo_softmax(model)\n",
    "\n",
    "# Creating an analyzer\n",
    "gradient_analyzer = innvestigate.analyzer.Gradient(model_wo_sm)\n",
    "\n",
    "# Applying the analyzer\n",
    "analysis = gradient_analyzer.analyze(image)\n",
    "\n",
    "# Displaying the gradient\n",
    "plot.imshow(analysis.squeeze(), cmap='seismic', interpolation='nearest')\n",
    "plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "For convience there is a function that creates an analyzer for you. It passes all the parameter on to the class instantiation:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d93b4bbe0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Creating an analyzer\n",
    "gradient_analyzer = innvestigate.create_analyzer(\"gradient\", model_wo_sm)\n",
    "\n",
    "# Applying the analyzer\n",
    "analysis = gradient_analyzer.analyze(image)\n",
    "\n",
    "# Displaying the gradient\n",
    "plot.imshow(analysis.squeeze(), cmap='seismic', interpolation='nearest')\n",
    "plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To emphasize different compontents of the analysis many people use instead of the \"plain\" gradient the absolute value or the square of it. With the gradient analyzer this can be done specifying additional parameters when creating the analyzer:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creating a parameterized analyzer\n",
    "abs_gradient_analyzer = innvestigate.create_analyzer(\"gradient\", model_wo_sm, postprocess=\"abs\")\n",
    "square_gradient_analyzer = innvestigate.create_analyzer(\"gradient\", model_wo_sm, postprocess=\"square\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Similar other analyzers can be parameterized.\n",
    "\n",
    "Now we visualize the result by projecting the gradient into a gray-color-image:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d3465d080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4cf00d6f98>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Applying the analyzers\n",
    "abs_analysis = abs_gradient_analyzer.analyze(image)\n",
    "square_analysis = square_gradient_analyzer.analyze(image)\n",
    "\n",
    "# Displaying the analyses, use gray map as there no negative values anymore\n",
    "plot.imshow(abs_analysis.squeeze(), cmap='gray', interpolation='nearest')\n",
    "plot.show()\n",
    "plot.imshow(square_analysis.squeeze(), cmap='gray', interpolation='nearest')\n",
    "plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Training an analyzer\n",
    "\n",
    "Some analyzers are data-dependent and need to be trained. In **iNNvestigate** this realized with a SKLearn-like interface. In the next piece of code we train the method PatternNet that analyzes the *signal*:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Epoch 1/1\n",
      "1875/1875 [==============================] - 23s 12ms/step - loss: 4.0000 - broadcast_1_loss: 1.0000 - broadcast_2_loss: 1.0000 - broadcast_3_loss: 1.0000 - broadcast_4_loss: 1.0000\n"
     ]
    }
   ],
   "source": [
    "# Creating an analyzer\n",
    "patternnet_analyzer = innvestigate.create_analyzer(\"pattern.net\", model_wo_sm, pattern_type=\"relu\")\n",
    "\n",
    "# Train (or adapt) the analyzer to the training data\n",
    "patternnet_analyzer.fit(data[0], verbose=True)\n",
    "\n",
    "# Applying the analyzer\n",
    "analysis = patternnet_analyzer.analyze(image)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And visualize it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d346b7a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Displaying the signal (projected back into input space)\n",
    "plot.imshow(analysis.squeeze()/np.abs(analysis).max(), cmap=\"gray\", interpolation=\"nearest\")\n",
    "plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Choosing the output neuron\n",
    "\n",
    "In the previous examples we always analyzed the output of the neuron with the highest activation. In the next one we show how one can choose the neuron to analyze:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Creating an analyzer and set neuron_selection_mode to \"index\"\n",
    "inputXgradient_analyzer = innvestigate.create_analyzer(\"input_t_gradient\", model_wo_sm,\n",
    "                                                       neuron_selection_mode=\"index\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The gradient\\*input analyzer is an example from the *attribution* category and we visualize it by means of a colored heatmap to highlight positive and negative attributions:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 0\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2be6d4a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 1\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4cf0091e80>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 2\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2bdb91d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 3\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2bd24208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 4\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d780e1080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 5\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4d7809fcf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 6\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2bd6f940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 7\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4cf00791d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 8\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2be6da58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Analysis w.r.t. to neuron 9\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f4c2bcfb7f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for neuron_index in range(10):\n",
    "    print(\"Analysis w.r.t. to neuron\", neuron_index)\n",
    "    # Applying the analyzer and pass that we want \n",
    "    analysis = inputXgradient_analyzer.analyze(image, neuron_index)\n",
    "    \n",
    "    # Displaying the gradient\n",
    "    plot.imshow(analysis.squeeze(), cmap='seismic', interpolation='nearest')\n",
    "    plot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Additional resources\n",
    "\n",
    "If you would like to learn more we have more notebooks for you, for example: [Comparing methods on MNIST](mnist_method_comparison.ipynb), [Comparing methods on ImageNet](imagenet_method_comparison.ipynb) and [Comparing networks on ImageNet](imagenet_network_comparison.ipynb)\n",
    "\n",
    "If you want to know more about how to use the API of **iNNvestigate** look into: [Developing with iNNvestigate](introduction_development.ipynb)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
